package io.实例;

import java.io.*;
import java.util.Scanner;

public class demo11 {
    /*
    进行普通文件的复制
     */
    public static void main(String[] args) throws IOException {
        Scanner scanner=new Scanner(System.in);

        System.out.println("请输入要复制的文件（绝对路径 OR 相对路径):");
        String sourcePath=scanner.next();
        File soucefile=new File(sourcePath);
        if(!soucefile.exists()){
            System.out.println("该文件不存在，请确认路径是否正确");
            return;
        }
        if(!soucefile.isFile()){
            System.out.println("该文件不是普通文件，请确认路径是否正确");
            return;
        }

        System.out.println("请输入要复制到的目标路径（绝对路径 OR 相对路径): ");
        String destPath=scanner.next();
        File destfile=new File(destPath);

        if (destfile.exists()){
            if (destfile.isDirectory()){
                System.out.println("目标路径已存在，并且是一个目录，请确认路径是否正确");
                return;
            }
            if (destfile.isFile()){
                System.out.println("目标路径已存在,是否要进行覆盖？(y/n)");
                String choice=scanner.next();
                if(choice.toLowerCase().equals("y")){
                    System.out.println("停止复制");
                    return;
                }
            }
        }

        InputStream is=new FileInputStream(soucefile);
        OutputStream os=new FileOutputStream(destfile);

        byte[] buf=new byte[1024];
        int len=is.read(buf);

        while(len!=-1){
            os.write(buf,0,len);
            len=is.read(buf);
        }

        os.flush();
        System.out.println("复制完成");
    }
}
